The present invention relates generally to host communications and, more particularly, to host communications software.
Mainframe computer systems are widely used for a variety of data processing functions. For example, many corporate financial and accounting systems were developed for, and operate on, mainframe computing systems. Although the use of personal computers and personal computer networks has proliferated in recent years, mainframe application systems, referred to as legacy systems, are expected to remain popular for many types of data processing well into the next century.
A mainframe computing system typically includes multiple user terminals connected to a mainframe host (hereinafter xe2x80x9chostxe2x80x9d). Various systems are available for establishing host communications. The International Business Machine Corporation""s 3270 terminal system is one of the more widely-used systems for communicating with host computers. Typically, a 3270 terminal does not have its own data processing capability. A 3270 terminal typically displays screens generated by applications running on a host and communicates information from a user back to a host for processing. A user interface of an IBM 3270 terminal system comprises a plurality of screens that are generated by host applications for display on the 3270 terminal. Over the past few years, many 3270 terminals have been replaced with personal computers (PCs) configured to communicate with mainframe computing systems via 3270 terminal emulation software. Host access is also available via the World Wide Web (Web). Various host access software is available for accessing legacy systems via the Web, such as International Business Machine Corporation""s Host On-Demand (HOD) application program.
Conventional host communications software, whether traditional (e.g., standalone terminal emulator) or web-based (e.g., HOD) may include various transport protocols intertwined with host datastream processing. A variety of conventional transport protocols, such as Transmission Control Protocol/Internet Protocol (TCP/IP) and Systems Network Architecture (SNA), may be supported by conventional host communications software. However, conventional transport protocols may not meet the specialized needs of users who require different or customized transport protocols. Accordingly, users who require different or customized transport protocols typically have customized modifications made to conventional host communications software or have developed their own host communications software. Unfortunately, developing custom host communications software may be expensive and/or time consuming.
In addition, terminal emulation software may provide application program interface (API) level programming capability so that host information can be integrated with customer-developed workstation applications. A programmed interface runs on top of the emulation software on a workstation, simulates keystrokes against the emulator screen, and copies data to and from the interface (screen scraping). Because emulators simply relay text-based output of host applications, host applications were developed to gather information and display the information in a more usable and appealing graphical user interface (GUI). Some implementations may also manipulate datastreams before the datastreams are formatted for screen output. These capabilities may be valuable to emulator users who automate repetitive tasks, mask host applications and integrate host information with workstation software.
An example is a point-and-click front-end GUI that allows users to search a host database that has difficult textual command sequences. The application can receive input from a user in the form of windowed check boxes or drop-down list selections and translate the input into textual commands necessary to present the user with a more user-friendly list of results. Unfortunately, API-level programming to access host information directly from host datastreams may be somewhat complex.
In view of the above discussion, it is an object of the present invention to allow users to customize transport protocols of host datastream processing without requiring modifications to host datastream processing code.
It is another object of the present invention to facilitate the integration of host information with customer-developed workstation applications.
These and other objects of the present invention are provided, according to an aspect of the present invention, by systems, methods and computer program products for modifying host communications software to include user-provided transport code for sending and receiving datastreams to and from a host. A user transport code component is provided to the host communications software, and the user transport code component is dynamically linked to a datastream processing component of the host communications software. Dynamically linking a datastream processing component of the host communications software and the user transport code component includes defining transport events, and providing interfaces to listen and handle the transport events.
According to another aspect of the present invention, datastreams can be transmitted and received to and from a host via host communications software, wherein the host communications software includes a host datastream processing component dynamically linked with a user transport component. A user transport component may include transport protocol different from transport protocol of the host communications software. In response to receiving a start host session request, a transport event from a host datastream processing component is transmitted to a user transport component. Responsive to receiving the transport event, a connection is established with a host via the user transport component. For outbound datastreams received by the user transport component from the host, the outbound datastreams are unwrapped from format code of the host communications software. Inbound datastreams constructed by the host datastream processing component are transmitted to the user transport component and are wrapped, via the user transport component, in a transport format of the user transport component. The wrapped inbound datastreams are then transmitted to the host. Accordingly, the present invention allows user-supplied transport protocol to be utilized with host datastream processing software without requiring modification of the host datastream processing software.
According to another aspect of the present invention, host access software can be redesigned into a collection of dynamically connectable and reusable, self-contained, functional components referred to as Host Access components (or beans) that software developers can use to generate host access applications. Host access applications can be generated by placing a plurality of dynamically connectable, reusable components within a development space, and wiring the components together such that the components can transmit and receive information therebetween so as to function as a host access application at run time. Each dynamically connectable, reusable component is configured to perform a respective host access application task.